#ifndef _DATACOLLECTION_HPP
#define _DATACOLLECTION_HPP

#include <string>
#include <map>
using std::string;
using std::map;
using std::size_t;

namespace com_oocl_riley
{
class  Node
{
public:
    string _dateTime;
    size_t _size;
    Node(const string& dateTime = "", const size_t& size = 0);
    bool operator==(const Node& right);
    bool operator==(const Node& right) const;
};
typedef Node ValueType;
typedef string KeyType;

class  DataCollection
{
public:
    DataCollection();
    ~DataCollection();
    bool isEmpty() const;
    void insert(const KeyType& key, const ValueType& value);
    void erase(const KeyType& key);
    void clear();
    size_t size() const;
    string toString() const;
    DataCollection *operator-(const DataCollection * right) const;
    ValueType& operator[](const KeyType& key);
    const ValueType& operator[](const KeyType& key) const;
private:
    map<KeyType, ValueType>	*_dataSet;
};
}

#endif
